// 本题要求实现一个函数，统计给定字符串中的大写字母、小写字母、空格、数字以及其它字符各有多少。

// 函数接口定义：
// void StringCount( char *s );

// 其中 char *s 是用户传入的字符串。函数StringCount须在一行内按照

// 大写字母个数 小写字母个数 空格个数 数字个数 其它字符个数

// 的格式输出。

// 裁判测试程序样例：
#include <stdio.h>
#define MAXS 15

void StringCount(char *s);
void ReadString(char *s); /* 由裁判实现，略去不表 */

int main()
{
    char s[MAXS];

    ReadString(s);
    StringCount(s);

    return 0;
}

void ReadString(char *s)
{
    int idx = 0;
    char *ret_val = fgets(s, MAXS, stdin);
    // 处理换行符并且清空缓冲区
    if (ret_val)
    {
        while (ret_val[idx] != '\0' && ret_val[idx] != '\n')
        {
            idx++;
        }
        if (ret_val[idx] == '\n')
        {
            ret_val[idx] = '\0';
        }
        else
        {
            while (getchar() != '\n')
                ;
        }
    }
}

void StringCount(char *s)
{
    int smallN, capitalN, spaceN, digitN, others;
    smallN = capitalN = spaceN = digitN = others = 0;
    while (*s)
    {
        if (*s >= 'a' && *s <= 'z')
        {
            smallN++;
        }
        else if (*s >= 'A' && *s <= 'Z')
        {
            capitalN++;
        }
        else if (*s == 32)
        {
            spaceN++;
        }
        else if (*s >= '0' && *s <= '9')
        {
            digitN++;
        }
        else
        {
            others++;
        }
        s++;
    }
    printf("%d %d %d %d %d", capitalN, smallN, spaceN, digitN, others);
}